//
// Created by shen on 2024/6/22.
//

#ifndef AUDIOCAMERA_GLBASE_H
#define AUDIOCAMERA_GLBASE_H

#include "ImageDef.h"
#include <GLES3/gl3.h>

 class GLBase {
public:
    GLBase()
    {
        m_ProgramObj = 0;
        m_VertexShader = 0;
        m_FragmentShader = 0;

        m_SurfaceWidth = 0;
        m_SurfaceHeight = 0;
    }


    virtual ~GLBase(){ }

    virtual void LoadImage(NativeImage *pImage){};

    virtual void Init() = 0;

    virtual void Draw(int screenW, int screenH) = 0;

    virtual void Destroy() = 0;

protected:
    GLuint m_VertexShader;
    GLuint m_FragmentShader;

    GLint m_ProgramObj;

    int m_SurfaceWidth;

    int m_SurfaceHeight;

};


#endif //AUDIOCAMERA_GLBASE_H
